﻿//////////////////////////////////////////////////////////////////////////////
//
//  Copyright © 1998-2024 Glodon Company Limited.  All rights reserved.
//
//  Use of this software is subject to the terms of the Glodon license
//  agreement provided at the time of installation or download, or which
//  otherwise accompanies this software in either electronic or hard copy form.  
//
//////////////////////////////////////////////////////////////////////////////

// Reviewed

#pragma once
#include "IFillet2d.h"

namespace gcmp
{
    class Vector2d;
    class ICurve2d;

    /// \brief 二维线倒圆角操作类，用于实现二维线倒圆角功能
    ///
    class GCMP_GEOMETRY_INTERFACE_EXPORT AlgorithmFillet2d
    {
    public:

        /// \brief 二维曲线倒圆角接口
        /// \param[in] pCurve1 输入曲线1
        /// \param[in] pCurve2 输入曲线2
        /// \param[in] referencePoint1 曲线1上参考点1
        /// \param[in] referencePoint2 曲线2上参考点2
        /// \param[in] radius 用户输入半径
        /// \param[in,out] result 倒圆角结果结构体
        /// \return EnFillet2dErrorType 倒圆角结果类型
        static gcmp::EnFillet2dErrorType Fillet2dCurves(const gcmp::ICurve2d *pCurve1, const gcmp::ICurve2d *pCurve2
            , gcmp::Vector2d referencePoint1, gcmp::Vector2d referencePoint2, double radius, gcmp::Fillet2dResult &result);

    };
}
